perm filename MPRNT.OLD[MSS,LCS]1 blob
sn#099832 filedate 1974-06-15 generic text, type T, neo UTF8
C MPRNT.F4********** DRAWS MUSIC ON THE PLOTTER OR XGP **********
C *** READS DATA FROM CLFX, TAIL, FERM, BREP, REST, DRAW1, DRAW2
C LOAD WITH PPSRT, PLTCMD, NOTWRT, ITMSBX, TREST, CLFZ, LOOK
IMPLICIT INTEGER(A-Q,S-Z)
REAL DIS,PWDS,DISX,A,B,STFF,CENTR,POS
COMMON /DL/IXRX,SAVER,NAME
DIMENSION V(78),LIST(200)
COMMON/FRMT/F78F(1),FA1(1),FA5(1),ASK/SIZ/RSZ,JCEN,KCEN
COMMON/ALF/INP(3),ML/XRN/RN(4000)/STF/RSTFAC(8),RSTJC
COMMON /PLTR/PLT,RHT,DIS/PTR/PWDS(250),ITEM,L,I,IX
COMMON RJB,JA,CENTR,JB,RJQ(20),JQ(20)/POSI/STFF(8),JJB,POS
COMMON/DPY/GO,RXGP,TOP,BOT
EQUIVALENCE (JC,JQ(1)),(JD,JQ(2)),(JE,JQ(3)),(RJE,RJQ(3))
1,(RJF,RJQ(4)),(JG,JQ(5)),(JH,JQ(6)),(JF,JQ(4)),(RJG,RJQ(5))
1,(RJD,RJQ(2)),(RJC,RJQ(1)),(I1,INP(1)),(V,RN(3000))
1,(LIST,RN(3100))
DATA STFF/-369.0,-246.0,-123.0,0.0,123.0,246.0,369.0,450.0/
1 ,IP/'P'/
TOP2=-999
RXGP=0
I1=0
C RESTART PROG. OR TYPE 'F' TO FINISH PLOTTER.(IT'S NOT AUTOMATIC.)
2 PLOTIT=0
RSZ=.845
TOP=-999
BOT=999
PLT=0
PWDS(1)=1.
EDX=-1
DO 1402 K=1,8
1402 RSTFAC(K)=1.
M=1
ITEM=0
IXRX=0
I=1
58 GO=-1
GO TO 5504
11 CALL NOTWRT
57 IF(PLT)GO TO 6120
ITEM=ITEM+1
IF(EDX.NE.-1.AND.M.LT.I)GO TO 6120
IF(PLOTIT.EQ.-2)GO TO 2311
PWDS(ITEM+1)=I
PLT=0
GO=-1
5504 IF(I1.EQ.IP)GO TO 2311
59 TYPE 56
ACCEPT 89,INP
311 JA=0
IF(I1.NE.IP)GO TO 85
2311 CALL PLTCMD
IF(PLOTIT.EQ.0)GO TO 3005
I1=IP
PLOTIT=-1
C 'PXG' OR 'PXC' GOES TO 'PLOT COMMAND' ROUTINE
89 FORMAT(72A1)
6531 M=1
EDX=-1
DO 5532 K=1,9
5532 JQ(K)=RJQ(K)
590 IF(PLOTIT.EQ.-1)GO TO 121
I1=0
243 RJB=1.
C TO RUN THROUGH DATA.
241 RSZ=.845*RJB
RJB=0
RJC=0
RJD=0
TOP=-999
BOT=999
C GOES TO PLOTTER
85 M=1
I=PWDS(ITEM+1)
ITEM=0
8852 PLT=1
EDX=0
GO=0
GO TO 6120
60 IF(JA.NE.88)GO TO 601
RSTFAC(JC+4)=RJB
C FOR STAFF SIZE FACTOR WITHOUT STAFF.
GO TO 57
601 RSTJC=RSTFAC(JC+4)
5541 POS=STFF(JC+4)
JB=RHORZ(RJB)
C LINE IS DIVIDED INTO 200 POINTS.
CENTR=POS
551 IF(JA.EQ.4.OR.JA.EQ.10)GO TO 25
IF(JA.EQ.7)GO TO 81
IF(JA.LE.12.OR.JA.EQ.30)GO TO 11
IF(JA.EQ.18)GO TO 80
CALL ALPHA
GO TO 57
81 CALL KSIG
GO TO 57
80 CALL METER
GO TO 57
25 CALL ITMSUB
C BAR LINES, BEAMS, STAFF LINES ****
GO TO 57
3005 REWIND 21
C GUARDS AGAINST LOSSAGE!
PLOTIT=-2
CALL IFILE(21,NAME)
C JUMP TO READ BIG FILES
2200 J=ITEM+1
2202 READ(21),X,Y,
1 (PWDS(K),K=J,X+J),(RN(K),K=I,Y+I-2),ISCR,(V(K),K=1,ISCR),
1 LCNT,(LIST(K),K=1,LCNT)
READ(21),RSTFAC,STFF
ITEM=ITEM+X
I=Y
GO TO 6531
121 IF(PLOTIT.EQ.0)GO TO 5504
5121 CALL PLTSRT
C IF P5=0 MOVES UP AT START, IF P6=0 MOVES UP AT END.
PLT=-1-JH
C (JH) P8=1 OR 2 FOR 2-PASS PLOTS
M=I
I=I+M-1
IF(RJB.EQ.0)RJB=1.
DIS=RJB*1.24
IF(RJC.EQ.0)RJC=RJB
RHT=RJC*1.2
C 1.24 AND 1.2 ARE TO FIT 8 1/2 X 11 FORMAT
BOT=-BOT*RHT
IF(TOP2.EQ.-999)GO TO 8121
BOT=BOT+TOP2
GO TO 9121
8121 CALL PLOTS(K)
RXGP=995.-BOT
9121 NOMOVE=RJF+RJG*148.*RJC
C RJF=1 FOR NO MOVE AT END. RJG=# OF STAVES TO MOVE FOR NEW STAFF 0.
IXGP=JD
C (JD) P4=1 FOR XGP OUTPUT
IF(JE.NE.0)GO TO 1122
IF(RJD.EQ.0)GO TO 6121
IF(TOP2.NE.-999)RXGP=RXGP-BOT
C MOVES 0 POINT OVER EACH TIME.
GO TO 1122
6121 CALL PLOT(0,BOT,-3)
C MOVES PLOTTER UP IF P5=0.
1122 IXRX=IXGP
C NEXT RUNS THROUGH DATA WITH NEW CHANGES.
6120 IF(M.GE.I)GO TO 7120
CNT=RN(M)
DO 6220 K=CNT+1,10
JQ(K)=0
6220 RJQ(K)=0
JA=RN(M+1)
M=M+2
RJB=RN(M)
DO 9120 K=1,CNT
RJQ(K)=RN(M+K)
9120 JQ(K)=RJQ(K)
M=CNT+M+1
IF(EDX.LE.0)GO TO 60
GO TO 5504
7120 M=1
IF(EDX)GO TO 71201
IF(PLT.EQ.1)EDX=-1
PLT=0
C RETURNS FOR 'SL'=SAVE LAST
GO TO 5504
71201 X=50*RHT
TOP=TOP*RHT+X
IF(NOMOVE.NE.0)TOP=0
IF(NOMOVE.GT.1)TOP=NOMOVE
IF(IXGP.EQ.0)CALL PLOT(0,TOP,3)
TOP2=TOP
GO TO 2
C TO MOVE 'PLOTTER' FOR XGP OUTPUT
C MOVES PLOTTER UP
C ALWAYS START PLOT WITH BOTTOM UNIT ON PAGE AND WORK UP.
56 FORMAT(' PXG OR PXC'/)
END